// 数据结构练习
// 1. 创建一个空的Vec<i32>，并添加5个元素
// 2. 创建一个包含字符串的向量，并访问第三个元素
// 3. 使用push方法向向量添加元素，使用pop方法移除最后一个元素
// 4. 创建一个String类型的变量，并向其追加内容
// 5. 使用format!宏创建一个格式化字符串
// 6. 创建一个HashMap，存储一些键值对，并尝试访问和修改它们
// 7. 创建一个HashSet，存储一些整数，并检查某个值是否存在

use std::collections::{HashMap, HashSet};

fn main() {
    println!("这是一个数据结构练习文件。");
    println!("请根据注释提示，完成相应的练习任务。");
    // 1. 创建一个空的Vec<i32>，并添加5个元素
    let mut vec = Vec::new();
    vec.push(1);
    vec.push(2);
    vec.push(3);
    vec.push(4);
    vec.push(5);
    // 2. 创建一个包含字符串的向量，并访问第三个元素
    let vec_str = vec!["apple", "banana", "blueberry", "cherry", "date"];
    println!("第三个元素是：{}", vec_str[2]);
    // 3. 使用push方法向向量添加元素，使用pop方法移除最后一个元素
    vec.push(6);
    vec.pop();
    // 4. 创建一个String类型的变量，并向其追加内容
    let mut str = String::from("Hello, ");
    str.push_str("world!");
    // 5. 使用format!宏创建一个格式化字符串
    let formatted_str = format!("{} {}", str, "How are you?");
    // 6. 创建一个HashMap，存储一些键值对，并尝试访问和修改它们
    let mut map = HashMap::new();
    map.insert("name", "Alice");
    map.insert("age", "30");
    println!("Alice's age is: {}", map.get("age").unwrap());
    // 7. 创建一个HashSet，存储一些整数，并检查某个值是否存在
    let mut set = HashSet::new();
    set.insert(1);
    set.insert(2);
    set.insert(3);
    println!("Does 2 exist in the set? {}", set.contains(&2));
}
